﻿using System.Collections.Generic;

namespace KINGDEE.K3.DIY.INTERFACE.Models
{
    #region 返回数据模型
    public class RESULT
    {
        public string error_code { get; set; }       //结果编码
        public string msg { get; set; }              //结果
        public string data { get; set; }            //描述
    }
    #endregion
    #region 调拨出库单数据模型
    //调拨出库单主表
    public class TRANSFEROUT
    {
        public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
        public string OPTYPE { get; set; }                    //操作类型
        public string CHECKTYPE { get; set; }                //是否自动审核， 1--自动审核，0--创建状态
        public string FYWID { get; set; }                    //业务系统主表ID
        public string FStockOrgID { get; set; }              //调出库存组织
        public string FSTOCKINORGID { get; set; }           //调入库存组织
        public string FDate { get; set; }                    //单据日期
        public string FOwnerIdHead { get; set; }             //调入货主     （业务组织）  
        public string FNOTE { get; set; }                    //备注   没有传""
        public List<TRANSFEROUTENTRY> entries { get; set; }    //分录
    }
  

    //调拨出库单子表
    public class TRANSFEROUTENTRY
    {
        public string FYWID { get; set; }                      //业务系统主表ID
        public string FYWENTRYID { get; set; }                  //业务系统分录ID
        public string FMaterialId { get; set; }              //物料编码
        public string FUnitID { get; set; }           //计量单位
        public string FQty { get; set; }        //调入数量
        public string FSrcStockID { get; set; }           //调出仓库
        public string FDestStockID { get; set; }   //调入仓库
    }
    #endregion

    #region 调拨入库单数据模型
    //调拨入库单主表
    public class TRANSFERIN
    {
        public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
        public string OPTYPE { get; set; }                    //操作类型
        public string FYWID { get; set; }                    //业务系统主表ID
        public string FStockOrgID { get; set; }              //调出库存组织
        public string FSTOCKINORGID { get; set; }           //调入库存组织
        public string FDate { get; set; }                    //单据日期
        public string FOwnerIdHead { get; set; }             //调入货主     （业务组织）  
        public string FNOTE { get; set; }                    //备注   没有传""
        public List<TRANSFERINENTRY> entries { get; set; }    //分录
    }


    //调拨入库单子表
    public class TRANSFERINENTRY
    {
        public string FYWID { get; set; }                      //业务系统主表ID
        public string FYWENTRYID { get; set; }                  //业务系统分录ID
        public string FMaterialId { get; set; }              //物料编码
        public string FUnitID { get; set; }           //计量单位
        public string FQty { get; set; }        //调入数量
        public string FSrcStockID { get; set; }           //调出仓库
        public string FDestStockID { get; set; }   //调入仓库
        public string FSORYWID { get; set; }           //原调拨出库单业务系统主表ID
        public string FSORYWENTRYID { get; set; }   //原调拨出库单业务系统子表ID
    }
    #endregion
}

    #region 销售出库单数据模型
//销售出库单主表
public class SALOUT
{
    public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
    public string OPTYPE { get; set; }                    //操作类型
    public string DELBILLNO { get; set; }              //销售出库单编码 
    public string FSaleOrgId { get; set; }              //销售组织
    public string FSTOCKORGID { get; set; }        //发货组织
    public string FDate { get; set; }       //单据日期
    public string FCustomerID { get; set; }       //客户
    public string F_pik_fuwuhao { get; set; }         //服务号   文本
    public string F_PIK_ZCZX { get; set; }         //直采直销，不经库房    "1" 代表勾选   "0" 不勾选
    public string F_PIK_YFJS { get; set; }         //运费结算             现付  到付
    public string F_pik_hth { get; set; }         //合同号
    public string FNOTE { get; set; }         //备注   没有传""
    public List<SALOUTENTRY> entries { get; set; }  //分录
}

public class SALOUTENTRY
{
    public string FMaterialId { get; set; }              //物料编码
    public string FUnitID { get; set; }           //计量单位
    public string FRealQty { get; set; }        //实发数量
    public string FStockID { get; set; }           //发出仓库
    public string FSOUID { get; set; }   //源单主表ID       销售订单主表id\
    public string FSOUENTRYID { get; set; }   //源单子表ID       销售订单子表id\


}

#endregion

#region 销售订单单据模型
//销售订单主表

public class SEORDER
{
    public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
    public string OPTYPE { get; set; }                    //操作类型
    public string FYWID { get; set; }                    //业务系统主表ID
    public string DELBILLNO { get; set; }              //销售订单编码 
    public string FSaleOrgId { get; set; }              //销售组织
    public string CHECKTYPE { get; set; }                //是否自动审核， 1--自动审核，0--创建状态
    public string FCustId { get; set; }       //客户
    public string FSalerId { get; set; }       //销售员
    public string FSaleDeptId { get; set; }       //销售部门
    public string FDate { get; set; }       //单据日期
    public string FNOTE { get; set; }         //备注   没有传""
    public List<SEORDERENTRY> entries { get; set; }  //分录
}

public class B2CSEODER
{
    public string FNETORDERDATE { get; set; }              //订单日期
    public string FNETORDERSOURCE { get; set; }              //来源网店
    public string FReceivePerson { get; set; }              //收获人
    public string FMobilePhone { get; set; }              //手机
    public string FFullAddress { get; set; }              //地址
    public string FReceiverAddress { get; set; }              //详细地址

    public List<B2CSEODERENTRY> entries { get; set; }
}

public class B2CSEODERENTRY
{
    public string FMaterialId { get; set; }              //物料
    public string FSaleUnit { get; set; }              //单位
    public string FQty { get; set; }              //数量
    public string FTaxPrice { get; set; }              //单价
    public string FStockOrgId { get; set; }              //库存组织
    public string FStockId { get; set; }              //仓库 

}

public class SEORDERENTRY
{
    public string FYWID { get; set; }                      //业务系统主表ID
    public string FYWENTRYID { get; set; }                  //业务系统分录ID
    public string FMaterialId { get; set; }              //物料编码
    public string FUnitID { get; set; }           //计量单位
    public string FQty { get; set; }        //销售数量
    public string FTaxPrice { get; set; }        //含税单价
    public string FDeliveryDate { get; set; } /// 要货日期
    public string FStockOrgId { get; set; } /// 库存组织
    public string FSettleOrgId { get; set; } /// 结算组织
}

#endregion

#region 其他应收单数据模型
//其他应收单主表
public class AROTHER
{
    public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
    public string OPTYPE { get; set; }                    //操作类型
    public string DELBILLNO { get; set; }                    //删除用的编码   新增的时候可以不填
    public string FSETTLEORGID { get; set; }              //结算组织
    public string FPAYORGID { get; set; }                 //收款组织
    public string F_pik_SKLX { get; set; }                //收款类型    文本 
    public string FDATE { get; set; }                     //业务日期
    public string FENDDATE_H { get; set; }       //到期日
    public string F_pik_HTH { get; set; }       //合同号
    public string FCONTACTUNIT { get; set; }       //往来单位
    public string FAMOUNTFOR { get; set; }       //总金额
    public string FNOTAXAMOUNT { get; set; }       //不含税总金额
    public string FTAXAMOUNT { get; set; }       //税额

    public string F_pik_YDKH { get; set; }       //源单客户
    public List<AROTHERENTRY> entries { get; set; }  //分录
}

public class AROTHERENTRY
{
    public string FCOSTID { get; set; }              //费用项目编码
    public string FCOSTDEPARTMENTID { get; set; }           //费用承担部门
    public string FNOTAXAMOUNTFOR { get; set; }        //不含税金额
    public string FTAXAMOUNTFOR { get; set; }           //税额
    public string FAMOUNTFOR { get; set; }           //税额
    public string FRemark { get; set; }
}

#endregion

/****以下是查询接口返回数据类型****/
#region 查询过滤条件模型
public class QUERYFLITER
{
    public string LIN { get; set; }       //许可
    public string FHTH { get; set; }       //合同号,模糊  不支持特殊字符
    public string FBILLNO  { get; set; }              //当前单据号,模糊  不支持特殊字符  
    public string FBillType { get; set; }              //必填    单据类型内容参考前面表页里的字段说明
    public string F_DATE { get; set; }            //开始日期，不能为空， 格式:2016-01-01
    public string T_DATE { get; set; }            //截止日期，不能为空， 格式:2016-01-01
}
#endregion

#region 查询销售订单,该模型是通用型的 ，收退款那用独立的模型
public class QUERYSALORDER
{
    public string FCLOUDID { get; set; }       
    public string FBillNo { get; set; }              
    public string FBillType { get; set; }           
    public string FTime { get; set; }
    public string FOP { get; set; }
    public string FREMARK { get; set; }
    public string FHTH { get; set; }
    public List<QUERYSALORDERENTRY> entries { get; set; }    //分录
}


public class QUERYSALORDERENTRY
{
    public string FCLOUDID { get; set; }
    public string FENTRYID { get; set; }
    public string FITEMID { get; set; }
    public string FITEMNUMBER { get; set; }
    public string FITEMNAME { get; set; }
    public string FUNITNAME { get; set; }
    public string FQTY { get; set; }
    public string FSTOCKORG { get; set; }
    public string FSOBILLNO { get; set; }
    
}
#endregion



#region 收款单模型
public class QUERYRECEIVE
{
    public string FYWID { get; set; }                    //业务系统主表ID
    public string FBillType { get; set; }
    public string FCONTACTUNITTYPE { get; set; } ///往来单位类型
    public string FCONTACTUNIT { get; set; }//往来单位
    public string FDate { get; set; }
    public string FPAYUNITTYPE { get; set; }//付款单位类型
    public string FPAYUNIT { get; set; }//付款单位
    public string FCURRENCYID { get; set; }//币别
    public string FPAYORGID { get; set; }//收款组织
    public string FSALEORGID { get; set; }//销售组织
    public string FSETTLEORGID { get; set; }//结算组织
    public string FSALEDEPTID { get; set; }//销售部门
    public string FSALEERID { get; set; }//销售员
    public string FRECEIVEAMOUNTFOR_H { get; set; }//应收金额
    public string FREALRECAMOUNTFOR { get; set; }//实收金额

    public List<QUERYRECEIVEERENTRY> entries { get; set; }    //分录
}


public class QUERYRECEIVEERENTRY
{
    public string FYWID { get; set; }
    public string FENTRYID { get; set; }
    public string FSETTLETYPEID { get; set; }//结算方式
    public string FPURPOSEID { get; set; }//收款用途
    public string FRECTOTALAMOUNTFOR { get; set; }//应收金额
    public string FREALRECAMOUNTFOR_D { get; set; }//实收金额
    public string FSRCBILLTYPEID { get; set; }//源单类型
    public string FSRCBILLNO { get; set; }//源单编号
    public string FSRCROWID { get; set; }//源单内码
    public string FAFTTAXTOTALAMOUNT { get; set; }//应收金额
    public string FPLANRECAMOUNT { get; set; }//计划收款金额
    public string FREALRECAMOUNT { get; set; }//本次收款金额
    public string FORDERBILLNO { get; set; }//销售订单号
}
#endregion

#region 销售退货单
public class RETURNSTOCK
{
    public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
    public string OPTYPE { get; set; }                    //操作类型
    public string FYWID { get; set; }                    //业务系统主表ID
    public string DELBILLNO { get; set; }              //销售订单编码 
    public string FSaleOrgId { get; set; }              //销售组织
    public string FStockOrgId { get; set; }              //库存组织
    public string CHECKTYPE { get; set; }                //是否自动审核， 1--自动审核，0--创建状态
    public string FRetcustId { get; set; }       //客户
    public string FDate { get; set; }       //单据日期
    public string FNOTE { get; set; }         //备注   没有传""

    //FStockOrgId
    public List<RETURNSTOCKENTRY> entries { get; set; }    //分录
}

public class RETURNSTOCKENTRY
{
    public string FYWID { get; set; }                      //业务系统主表ID
    public string FYWENTRYID { get; set; }                  //业务系统分录ID
    public string FMaterialId { get; set; }              //物料编码
    public string FUnitID { get; set; }           //计量单位
    public string FRealQty { get; set; }        //销售数量
    public string FReturnType { get; set; } /// 退货类型
    public string FStockId { get; set; } /// 仓库
    public string FDeliveryDate { get; set; } /// 退货日期
}
#endregion

#region 销售出库成本
public class QUERYOUTCOST
{
    public string FCLOUDID { get; set; }
    public string FBillNo { get; set; }
    public string FTime { get; set; }
    public string FHTH { get; set; }
    public List<QUERYOUTCOSTENTRY> entries { get; set; }    //分录
}


public class QUERYOUTCOSTENTRY
{
    public string FCLOUDID { get; set; }
    public string FENTRYID { get; set; }
    public string FITEMID { get; set; }
    public string FITEMNUMBER { get; set; }
    public string FITEMNAME { get; set; }
    public string FUNITNAME { get; set; }
    public string FREALQTY { get; set; }
    public string FCOST { get; set; }
    public string FSTOCKORG { get; set; }
}
#endregion



#region 应付单模型
public class INSERTPAYABLE
{
    public string LIN { get; set; }                    //许可字符串md5加密,不要整体加密
    public string FYWID { get; set; }                    //业务系统主表ID
    public string FBILLTYPE { get; set; }                    //单据类型：１－标准应付单　２－费用应付单
    public string FSUPPLIERID { get; set; }             //供应商
    public string FCURRENCYID { get; set; }             //币别（如果都是人民币业务可以为空）
    public string FDATE { get; set; }                  //业务日期
    public string FSETTLEORGID { get; set; }          //结算组织
    public string FPAYORGID { get; set; }             //付款组织
    public string FPURCHASEORGID { get; set; }         //采购组织
    public List<INSERTPAYABLEENTRY> entries { get; set; }    //分录
}


public class INSERTPAYABLEENTRY
{
    public string FYWID { get; set; }                      //业务系统主表ID
    public string FYWENTRYID { get; set; }                  //业务系统分录ID
    public string FMATERIALID { get; set; }              //物料编码
    public string FCOSTID { get; set; }                   //费用项目编码
    public string FPRICEUNITID { get; set; }                  //计价单位
    public string FPRICEQTY { get; set; }                  //计价数量
    public string FTAXPRICE { get; set; }                  //含税单价
    public string FENTRYTAXRATE { get; set; }                  //税率
    public string FALLAMOUNTFOR { get; set; }                  //价税合计
    public string FCOSTDEPARTMENTID { get; set; }                  //费用承担部门
    public string F_pik_contractnum { get; set; }                  //合同号
    public string F_pik_title { get; set; }  //名称
}
#endregion



